<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>MixerReceive</title>
    <link rel="stylesheet" type="text/css" href="csound.css" />
    <meta name="generator" content="DocBook XSL Stylesheets V1.78.1" />
    <link rel="home" href="index.html" title="The Canonical Csound Reference Manual" />
    <link rel="up" href="OpcodesTop.html" title="Orchestra Opcodes and Operators" />
    <link rel="prev" href="MixerSend.html" title="MixerSend" />
    <link rel="next" href="MixerClear.html" title="MixerClear" />
  </head>
  <body>
    <div class="navheader">
      <table width="100%" summary="Navigation header">
        <tr>
          <th colspan="3" align="center">MixerReceive</th>
        </tr>
        <tr>
          <td width="20%" align="left"><a accesskey="p" href="MixerSend.html">Prev</a> </td>
          <th width="60%" align="center">Orchestra Opcodes and Operators</th>
          <td width="20%" align="right"> <a accesskey="n" href="MixerClear.html">Next</a></td>
        </tr>
      </table>
      <hr />
    </div>
    <div class="refentry">
      <a id="MixerReceive"></a>
      <div class="titlepage"></div>
      <a id="IndexMixerReceive" class="indexterm"></a>
      <div class="refnamediv">
        <h2>
          <span class="refentrytitle">MixerReceive</span>
        </h2>
        <p>MixerReceive — 
      Receives an arate signal from a channel of a buss.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp125839520"></a>
        <h2>Syntax</h2>
        <pre class="synopsis">asignal <span class="command"><strong>MixerReceive</strong></span> ibuss, ichannel</pre>
      </div>
      <div class="refsect1">
        <a id="idp125881824"></a>
        <h2>Description</h2>
        <p>Receives an arate signal that has been mixed onto a channel of a buss.
    </p>
      </div>
      <div class="refsect1">
        <a id="idp125883104"></a>
        <h2>Initialization</h2>
        <p><span class="emphasis"><em>ibuss</em></span> -- The number of the buss, for example the number of the instrument receiving the signal.</p>
        <p><span class="emphasis"><em>ichannel</em></span> -- The number of the channel. Each buss has <code class="literal">nchnls</code> channels.</p>
      </div>
      <div class="refsect1">
        <a id="idp125886144"></a>
        <h2>Performance</h2>
        <p><span class="emphasis"><em>asignal</em></span> -- The signal that has been mixed onto the indicated channel of the buss.</p>
        <p>
Use of the mixer requires that instruments setting gains have smaller numbers than instruments sending signals, 
and that instruments sending signals have smaller numbers than instruments receiving those signals. 
However, an instrument may have any number of sends or receives. After the final signal is received, 
<a class="link" href="MixerClear.html" title="MixerClear"><em class="citetitle">MixerClear</em></a> must be invoked to reset the busses to 0 before the next kperiod.
</p>
      </div>
      <div class="refsect1">
        <a id="idp125889440"></a>
        <h2>Examples</h2>
        <pre class="programlisting">
<span class="oblock">instr</span> 220 <span class="comment">; Master output</span>
    <span class="comment">; It applies a bass enhancement, compression and fadeout</span>
    <span class="comment">; to the whole piece, outputs signals, and clears the mixer.</span>
  a1  <span class="opc">MixerReceive</span> 220, 0
  a2  <span class="opc">MixerReceive</span> 220, 1
  <span class="comment">; Bass enhancement</span>
  al1 <span class="opc">butterlp</span> a1, 100
  al2 <span class="opc">butterlp</span> a2, 100
  a1 <span class="op">=</span> al1<span class="op">*</span>1.5 <span class="op">+</span> a1
  a2 <span class="op">=</span> al2<span class="op">*</span>1.5 <span class="op">+</span> a2 

  <span class="comment">; Global amplitude shape</span>
  kenv   <span class="opc">linseg</span> 0., p5 <span class="op">/</span> 2.0, p4, p3 <span class="op">-</span> p5, p4, p5 <span class="op">/</span> 2.0, 0.
  a1<span class="op">=</span>a1<span class="op">*</span>kenv
  a2<span class="op">=</span>a2<span class="op">*</span>kenv 
  
  <span class="comment">; Compression</span>
  a1 <span class="opc">dam</span> a1, 5000, 0.5, 1, 0.2, 0.1  
  a2 <span class="opc">dam</span> a2, 5000, 0.5, 1, 0.2, 0.1  
  
  <span class="comment">; Remove DC bias</span>
  a1blocked <span class="opc">dcblock</span>		a1
  a2blocked	<span class="opc">dcblock</span>		a2
  
  <span class="comment">; Output signals</span>
  <span class="opc">outs</span> a1blocked, a2blocked
  <span class="opc">MixerClear</span>
<span class="oblock">endin</span></pre>
        <p>
      Here is a complete example of the MixerReceive opcode. It uses the file <a class="ulink" href="examples/Mixer.csd" target="_top"><em class="citetitle">Mixer.csd</em></a>
      </p>
        <div class="example">
          <a id="idp125915024"></a>
          <p class="title">
            <strong>Example 519. Complete example of the MixerReceive opcode.</strong>
          </p>
          <div class="example-contents">
            <pre class="programlisting">
<span class="csdtag">&lt;CsoundSynthesizer&gt;</span>
<span class="csdtag">&lt;CsOptions&gt;</span>
<span class="comment">; Select audio/midi flags here according to platform</span>
<span class="comment">; Audio out   Audio in</span>
-odac       <span class="comment">;   -iadc    ;;;RT audio out</span>
<span class="comment">; For Non-realtime ouput leave only the line below:</span>
<span class="comment">; -o Mixer.wav -W ;;; for file output any platform</span>
<span class="csdtag">&lt;/CsOptions&gt;</span>
<span class="csdtag">&lt;CsInstruments&gt;</span>

<span class="ohdr">sr</span> <span class="op">=</span> 44100
<span class="ohdr">ksmps</span> <span class="op">=</span>	32
<span class="ohdr">nchnls</span> <span class="op">=</span> 2
<span class="ohdr">0dbfs</span>  <span class="op">=</span> 1

<span class="oblock">instr</span> 1

katt	<span class="opc">expon</span> 0.01, p3, 1		<span class="comment">;create an attack</span>
aout	<span class="opc">poscil</span> .7, 440,1
	<span class="opc">MixerSetLevel</span>	1, 3, katt	<span class="comment">;impose attack on the gain level</span>
	<span class="opc">MixerSend</span> aout, 1, 3, 0		<span class="comment">;send to channel 0</span>
<span class="oblock">endin</span>

<span class="oblock">instr</span> 2

aout	<span class="opc">vco2</span> .5, 110			<span class="comment">;saw wave</span>
	<span class="opc">MixerSetLevel</span> 2, 3, .25		<span class="comment">;set level to .25 of vco2</span>
	<span class="opc">MixerSend</span> aout, 2, 3, 1		<span class="comment">;send to channel 1</span>
<span class="oblock">endin</span>

<span class="oblock">instr</span> 3	<span class="comment">;mix instr.1 and 2 with reverb</span>
	
kgain1	<span class="opc">MixerGetLevel</span>	1,3		<span class="comment">;get level form buss 3</span>
kgain2	<span class="opc">MixerGetLevel</span>	2,3		<span class="comment">;get level form buss 3</span>
a1	<span class="opc">MixerReceive</span>	3,0		<span class="comment">;receive channel 0</span>
a2	<span class="opc">MixerReceive</span>	3,1		<span class="comment">;receive channel 1</span>
aout	<span class="op">=</span> a1<span class="op">*</span>kgain1<span class="op">+</span>a2<span class="op">*</span>kgain2		<span class="comment">;mix them</span>
aoutL, aoutR <span class="opc">reverbsc</span> aout, aout,  0.85, 12000	<span class="comment">;add a nice reverb</span>
	<span class="opc">outs</span>  aoutL, aoutR
	<span class="opc">MixerClear</span>
<span class="oblock">endin</span>

<span class="csdtag">&lt;/CsInstruments&gt;</span>
<span class="csdtag">&lt;CsScore&gt;</span>
<span class="stamnt">f</span>1 0 4096 10 1

<span class="stamnt">i</span>1 0 2
<span class="stamnt">i</span>2 0 2
<span class="stamnt">i</span>3 0 8	<span class="comment">;reverb stays on for 8 sec.</span>

<span class="stamnt">e</span>
<span class="csdtag">&lt;/CsScore&gt;</span>
<span class="csdtag">&lt;/CsoundSynthesizer&gt;</span>
</pre>
          </div>
        </div>
        <p><br class="example-break" />
    </p>
      </div>
      <div class="refsect1">
        <a id="idp125916960"></a>
        <h2>Credits</h2>
        <p>Michael Gogins (gogins at pipeline dot com).</p>
      </div>
    </div>
    <div class="navfooter">
      <hr />
      <table width="100%" summary="Navigation footer">
        <tr>
          <td width="40%" align="left"><a accesskey="p" href="MixerSend.html">Prev</a> </td>
          <td width="20%" align="center">
            <a accesskey="u" href="OpcodesTop.html">Up</a>
          </td>
          <td width="40%" align="right"> <a accesskey="n" href="MixerClear.html">Next</a></td>
        </tr>
        <tr>
          <td width="40%" align="left" valign="top">MixerSend </td>
          <td width="20%" align="center">
            <a accesskey="h" href="index.html">Home</a>
          </td>
          <td width="40%" align="right" valign="top"> MixerClear</td>
        </tr>
      </table>
    </div>
  </body>
</html>
